// 引入Count的UI组件
import CountUI from '../../components/Count'

// 引入connect用于连接UI组件与redux
import {connect} from 'react-redux'

import {createIncrementAction, createDecrementAction, createIncrementAsyncAction} from '../../redux/count_action'
 
// 映射状态
const mapStateToProps = state => ({count: state})
// 映射操作状态的方法
function mapDispatchToProps(dispatch) {
  return {
    jia: (number) => {
      // 通知redux执行加法
      dispatch(createIncrementAction(number))
    },
    jian: (number) => {
      dispatch(createDecrementAction(number))
    },
    jiaAsync: (number, time) => {
      dispatch(createIncrementAsyncAction(number, time))
    }
  }
}

// connect() 是一个高阶函数，它返回一个函数。第一个调用 connect() 返回的函数接受 CountUI 组件作为参数
// 创建并暴露一个Count的容器组件
export default connect(mapStateToProps, mapDispatchToProps)(CountUI)

